{{extend genshinLayout}}

{{block 'css'}}
<link rel="stylesheet" type="text/css" href="{{_res_path}}html/ledger/ledger-count-gs.css"/>
<link rel="preload" href="{{_res_path}}script/g2plot.min.js" as="script"/>
{{/block}}

{{block 'main'}}
<div class="head_box">
  <div class="id_text">ID: {{uid}}</div>
  <h2 class="day_text">{{yearText}}原石统计</h2>
  <img class="genshin_logo" src="{{_res_path}}img/other/原神.png"/>
</div>
<div class="data_box">
  <div class="tab_lable">数据总览</div>
  <div class="data_line">
    <div class="data_line_item">
      <div class="num">{{allPrimogemsShow}}</div>
      <div class="lable">总原石</div>
    </div>
    <div class="data_line_item">
      <div class="num">{{allGacha}}抽</div>
      <div class="lable">总抽数</div>
    </div>
    <div class="data_line_item">
      <div class="num">{{maxPrimogems.month}}月</div>
      <div class="lable">原石最多</div>
    </div>
    <div class="data_line_item">
      <div class="num">{{maxPrimogems.value}}</div>
      <div class="lable">{{maxPrimogems.month}}月原石</div>
    </div>
  </div>
  <div class="data_line">
    <div class="data_line_item">
      <div class="num">{{allMora}}</div>
      <div class="lable">总摩拉</div>
    </div>
    <div class="data_line_item">
      <div class="num">{{maxMora.month}}月</div>
      <div class="lable">摩拉最多</div>
    </div>
    <div class="data_line_item">
      {{if group_by.length>0 }}
      <div class="num">{{group_by[0].num}}</div>
      <div class="lable">{{group_by[0].action}}</div>
      {{/if}}
    </div>
    <div class="data_line_item">
      {{if group_by.length>0 }}
      <div class="num">{{group_by[1].num}}</div>
      <div class="lable">{{group_by[1].action}}</div>
      {{/if}}
    </div>
  </div>
</div>
<div class="data_box">
  <div class="tab_lable">月份统计</div>
  <div id="chartContainer"></div>
</div>
<div class="data_box">
  <div class="tab_lable">详细统计</div>
  <div id="chartContainer2"></div>
</div>
{{if hasMore }}
<div class="hasMore">*该数据只显示最近12个月</div>
{{/if}}


<script type="text/javascript" src="{{_res_path}}script/g2plot.min.js"></script>
<script>
  const { Column, Pie } = G2Plot

  const primogemsMonth = JSON.parse(`{{@ primogemsMonth}}`)
  const primogemsMax = `{{maxPrimogems.value}}` * 1

  const stackedColumnPlot = new Column('chartContainer', {
    data: primogemsMonth,
    isGroup: true,
    xField: 'month',
    yField: 'value',
    seriesField: 'name',
    animation: false,
    renderer: 'svg',
    padding: [40, 10, 30, 52],
    label: {
      position: 'top',
      style: {
        fontFamily: 'tttgbnumber'
      },
      offsetY: 10
    },
    xAxis: {
      label: {
        autoHide: false,
        formatter: (v) => {
          return v + '月'
        },
        style: {
          fontFamily: 'tttgbnumber',
          fontSize: 14
        }
      }
    },
    yAxis: {
      label: {
        style: {
          fontFamily: 'tttgbnumber',
          fontSize: 14
        }
      }
    }
  })
  stackedColumnPlot.render()

  const countdata = JSON.parse(`{{@ pieData}}`)
  const piePlot = new Pie('chartContainer2', {
    renderer: 'svg',
    animation: false,
    data: countdata,
    appendPadding: 10,
    angleField: 'num',
    colorField: 'action',
    radius: 1,
    innerRadius: 0.7,
    // appendPadding: 20,
    color: JSON.parse(`{{@ color}}`),
    meta: {
      // num: {
      //   formatter: (v) => `${v}`,
      // },
    },
    label: {
      type: 'inner',
      offset: '-50%',
      autoRotate: false,
      style: {
        textAlign: 'center',
        fontFamily: 'tttgbnumber'
      },
      formatter: ({ percent }) => {
        percent = (percent * 100).toFixed(0)
        return percent >= 2 ? `${percent}%` : ''
      }
    },
    statistic: {
      title: {
        offsetY: -8,
        content: '总计'
      },
      content: {
        style: {
          fontFamily: 'tttgbnumber'
        }
      }
    },
    legend: {
      offsetX: -16,
      itemValue: {
        formatter: (text, item) => {
          const items = countdata.filter((d) => d.action === item.value)[0]
          return items.num
        },
        style: {
          opacity: 0.65,
          fontFamily: 'tttgbnumber',
          'fontSize': 16
        }
      },
      itemName: {
        style: {
          'fontSize': 16
        }
      }
    }
  })
  piePlot.render()
</script>
{{/block}}
